// 假设你的FeatureCollection已经加载，名为pointsFC
var pointsFC = RiceFJ;

// 定义函数计算NDVI
function calculateNDVI(image) {
  return image.addBands(
    image.normalizedDifference(['B8', 'B4']).rename('NDVI') // NDVI = (NIR - RED) / (NIR + RED)
  );
}

// 获取哨兵2号卫星数据
var sentinel2 = ee.ImageCollection('COPERNICUS/S2_SR_HARMONIZED')
  .filterDate('2022-01-01', '2022-01-10') // 限定时间范围
  .filterBounds(pointsFC)
  .filter(ee.Filter.lt('CLOUDY_PIXEL_PERCENTAGE', 20)) // 云覆盖率小于 20%
  .map(calculateNDVI);

// 定义一个函数，用于提取点的NDVI值并添加到Feature中
function extractNDVIValues(point) {
  // 选择特定日期范围的图像，例如2024年
  var image = sentinel2.filterDate('2022-01-01', '2022-01-10').mean();
  var ndviValue = image.reduceRegion({
    reducer: ee.Reducer.first().setOutputs(['NDVI']),
    geometry: point.geometry(),
    scale: 10
  });
  return point.set('NDVI', ndviValue.get('NDVI'));
}

// 遍历点，提取NDVI值并添加到Feature中
var ndviPoints = pointsFC.map(extractNDVIValues);

print(ndviPoints);

Export.table.toDrive({
  collection: ndviPoints,
  description: 'Rice_10DayNDVI_0110',
  fileFormat: 'CSV',
  folder: 'GEE_Exports'
});

/*
  10-2022年1月1日-2022年1月10日
  20-2022年1月11日-2022年1月20日
  30-2022年1月21日-2022年1月30日
  40-2022年1月31日-2022年2月9日
  50-2022年2月10日-2022年2月19日
  60-2022年2月20日-2022年3月1日
  70-2022年3月2日-2022年3月11日
  80-2022年3月12日-2022年3月21日
  90-2022年3月22日-2022年3月31日
  100-2022年4月1日-2022年4月10日
  110-2022年4月11日-2022年4月20日
  120-2022年4月21日-2022年4月30日
  130-2022年5月1日-2022年5月10日
  140-2022年5月11日-2022年5月20日
  150-2022年5月21日-2022年5月30日
  160-2022年5月31日-2022年6月9日
  170-2022年6月10日-2022年6月19日
  180-2022年6月20日-2022年6月29日
  190-2022年6月30日-2022年7月9日
  200-2022年7月10日-2022年7月19日
  210-2022年7月20日-2022年7月29日
  220-2022年7月30日-2022年8月8日
  230-2022年8月9日-2022年8月18日
  240-2022年8月19日-2022年8月28日
  250-2022年8月29日-2022年9月7日
  260-2022年9月8日-2022年9月17日
  270-2022年9月18日-2022年9月27日
  280-2022年9月28日-2022年10月7日
  290-2022年10月8日-2022年10月17日
  300-2022年10月18日-2022年10月27日
  310-2022年10月28日-2022年11月6日
  320-2022年11月8日-2022年11月16日
  330-2022年11月17日-2022年11月26日
  340-2022年11月27日-2022年12月6日
  350-2022年12月7日-2022年12月16日
  360-2022年12月17日-2022年12月26日
*/

// 在地图上显示这些点
Map.addLayer(ndviPoints, {color: 'red'}, 'Points with NDVI');
